Elasticsearch-এ Bool Query একটি শক্তিশালী কনস্ট্রাক্ট যা আপনাকে একাধিক শর্ত বা কন্ডিশনের ভিত্তিতে ডকুমেন্ট অনুসন্ধান করতে দেয়। এটি মূলত একাধিক কোয়েরি (Query) কে একত্রিত করে জটিল অনুসন্ধান তৈরি করতে ব্যবহৃত হয়। Bool Query-তে চারটি মেইন ক্লজ (Clause) আছে:
এগুলো একসাথে ব্যবহার করে আপনি বিভিন্ন ধরনের জটিল কোয়েরি তৈরি করতে পারেন। নিচে প্রত্যেকটি ক্লজ-এর বিস্তারিত বর্ণনা এবং উদাহরণ দেওয়া হলো:
উদাহরণ:
{
"query": {
"bool": {
"must": [
{ "match": { "title": "Elasticsearch" } },
{ "match": { "content": "tutorial" } }
]
}
}
}
এখানে ডকুমেন্টগুলি রিটার্ন হবে যেগুলোর title-এ "Elasticsearch" এবং content-এ "tutorial" আছে।
উদাহরণ:
{
"query": {
"bool": {
"must_not": [
{ "match": { "author": "unknown" } }
]
}
}
}
এখানে ডকুমেন্টগুলি রিটার্ন হবে যেগুলোর author ফিল্ডে "unknown" নেই।
উদাহরণ:
{
"query": {
"bool": {
"should": [
{ "match": { "tags": "Elasticsearch" } },
{ "match": { "tags": "tutorial" } }
],
"minimum_should_match": 1
}
}
}
এখানে ডকুমেন্টগুলি রিটার্ন হবে যেগুলোর tags ফিল্ডে "Elasticsearch" বা "tutorial" আছে।
উদাহরণ:
{
"query": {
"bool": {
"filter": [
{ "term": { "status": "published" } }
]
}
}
}
এখানে শুধুমাত্র সেই ডকুমেন্টগুলি রিটার্ন হবে যেগুলোর status ফিল্ডে "published" আছে।
{
"query": {
"bool": {
"must": [
{ "match": { "title": "Elasticsearch" } }
],
"must_not": [
{ "term": { "author": "anonymous" } }
],
"should": [
{ "match": { "tags": "tutorial" } },
{ "match": { "tags": "guide" } }
],
"filter": [
{ "term": { "status": "published" } }
]
}
}
}
উপরের উদাহরণে:
Bool Query Elasticsearch-এ জটিল সার্চ অপারেশন তৈরি করতে অত্যন্ত উপযোগী। উদাহরণস্বরূপ, আপনি আপনার ডাটাবেস থেকে নির্দিষ্ট কীওয়ার্ড খুঁজে বের করতে, অবাঞ্ছিত কন্টেন্ট বাদ দিতে, অথবা ফিল্টারিং করতে Bool Query ব্যবহার করতে পারেন।
আরও দেখুন...